package com.rabbitmq.demo.pull;

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * RabbitMQ 的消息消费模式
 * 拉（pull）：消费者主动从 MQ 拉取消息，这种方式效率并不是很高，不过有的时候如果服务端需要批量拉取消息，倒是可以采用这种方式。
 */
@Slf4j
@RestController
public class ReceiveController {

    @Autowired
    private RabbitTemplate rabbitTemplate; 
    
    @GetMapping(value = "/receive")
    public Object receive(){
        Object msg = rabbitTemplate.receiveAndConvert("queue");
        log.info("pull msg is ==> {}",msg);
        return  msg;
    }
}
